Kerry Back
BUSI 721, Fall 2022
JGSB, Rice University
With generous assumptions about short sales
and the ability to borrow
efficient portfolios are combinations of the tangency portfolio with borrowing or saving.
Efficient portfolios plot on the line from the risk-free rate through the tangency portfolio.
A simple way to model that we like high expected returns and dislike high variance is to rank portfolios based on a combination of mean and variance:
\(\text{expected return}-\frac{1}{2}\text{A}\times\text{variance}\)
Why \(\text{A}\times\) variance instead of \(\text{A} \times\) std dev?
There is a theorem
that implies that for “reasonable preferences” and “small gambles” the expected return required to compensate for risk is proportional to variance.
This is smaller than if it were proportional to standard deviation.
Recall that the portfolios on the tangency line satisfy
\[\frac{w^⊤Cov_i}{w^⊤Cov_j}=\frac{\bar{r}_i-r_{f}}{\bar{r}_j-r_{f}}\]
This is \(\text{n}-1\) equations in \(\text{n}\) unknowns. The tangency portfolio satisfies the additional condition \(\sum w_i\)=1.
The optimal portfolio satisfies the additional condition
\[w^⊤Cov_{i}=\frac{\bar{r}_i-r_{f}}{\text{A}}\]
import numpy as np
# standard deviations
sds = np.array([0.15, 0.25, 0.35])
S = np.diag(sds)
# correlations
r12 = 0.15
r13 = 0.6
r23 = 0.3
R = np.identity(3)
R[0, 1] = R[1, 0] = r12
R[0, 2] = R[2, 0] = r13
R[1, 2] = R[2, 1] = r23
# covariance matrix
C = S @ R @ S
# optimal portfolio
rf = 0.04
means = np.array([0.06, 0.1, 0.09])
A = 4
w = np.linalg.solve(C, (means-r)/A)\(\text{w}_1=0.14\) \(\text{w}_2=0.22\) \(\text{w}_3=0.02\)